The top three were split by just 0.05s while Pierre Gasly surprised for Alpine to sit sixth fastest.
It was an hour of running without interruption, most teams performing their qualifying simulations midway through proceedings before swapping to race runs.
As the session got going, Daniel Ricciardo headed out with his RB coated in flo vis paint.
His car was one of those with a number of upgrades, though mostly under the car, despite the flo vis painted on the halo.
Drivers quickly picked up from where they left off, Lando Norris going fastest with a 1:14.197s, half a tenth quicker than the McLaren driver had gone in Free Practice 1.
The bulk were on the medium rubber, with only the two Williams, Zhou Guanyu, and Oscar Piastri on the hard tyres.
Max Verstappen complained of an ill-handling Red Bull Racing, battling with mid-corner understeer that transferred into exit-oversteer.
On the mediums, both Mercedes drivers improved their times on a second run, George Russell topping proceedings with a 1:14.089s.
A data issue for Piastri saw the Australian called back into the pits at the 20-minute marker.
He sat ninth at the time, having not run a comparable lap with his team-mate given their split tyre strategy in the early minutes.
When he did emerge, he did so on the soft compound tyre ahead of a qualifying simulation run.
On his soft tyre run, Sainz went fastest with a 1:13.286s, moving 0.8s clear of Russell’s earlier effort on medium rubber.
Valtteri Bottas recorded a 1:13.924s with his qualifying simulation for Sauber, a time that matched the fastest Free Practice 2 lap from 2023.
Piastri was sixth fastest with his best lap, losing time in the final third, which suggests he pushed too hard early in the lap, having been 0.043s down on Lewis Hamilton to the second split.
The Mercedes driver was fastest at the time, his best a 1:13.264s.
At the other end of the timesheets was Sergio Perez, who was the last driver to complete a qualifying simulation.
The Mexican recorded his lap with 20 minutes remaining in the session, improving only to 13th with a 1:14.081s.
After his run, focus swapped back to long runs with a view to Sunday’s race, meaning the timesheets did not change significantly.
Charles Leclerc spent some of the final part of the session in the garage as the team adjusted his car’s front suspension.
He rejoined the track with eight minutes remaining with a set of red-walled tyres fitted.
At Red Bull Racing, Verstappen was clearly still less than satisfied as he ran off the road at Turn 1 on his race run.
It was an otherwise uneventful session, ending with Hamilton fastest from Sainz, Norris, and Gasly for Alpine.
Piastri was seventh fastest, having run slightly out of sequence, while Ricciardo was only 16th with a 1:14.257s comparing well to his RB team-mate, Yuki Tsunoda, who managed a 1:14.211s in 15th.
A final hour of practice remains, beginning at 12:30 local time on Saturday (20:30 AEST).